home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 July / Macworld (1999-07).dmg / Serious Software / OpenWorld demo 2.0 / Development / SingleTag / Counter / Counter.h < prev    next >
Text File  |  1999-04-27  |  1KB  |  61 lines

  1. #ifndef _llist
  2. #define _llist
  3.  
  4. #include "WSAPI.h"
  5. #include "OpenWorld_utils.h"
  6. #include "OpenWorld_plugIn.h"
  7. #include <string.h>
  8.  
  9. // constants
  10. #define kMaxTimes     50        // every 50 times, write the list of counters to the disk
  11. #define kMaxLine    1024    // max characters in a line
  12. #define kFileName     ".OpenWorld counter"    // file name
  13.  
  14. /* Linked list types */
  15. /* types */
  16. typedef struct
  17. {
  18.     char    *page;
  19.     long    value;
  20. }obj;
  21.  
  22. typedef struct QueueEl
  23. {
  24.     struct QueueEl *next;
  25.     obj    *item;
  26. }QueueEl;
  27.  
  28. typedef struct
  29. {
  30.     QueueEl *first;
  31.     QueueEl *last;
  32.     long    cont;
  33. }HeadQueue;
  34.  
  35. /* macros */
  36. #define create_queue(queue)\
  37. {\
  38.     (queue)=(HeadQueue*)OW_NewPtr(param,sizeof(HeadQueue));\
  39.     (queue)->first=NULL;\
  40.     (queue)->last=NULL;\
  41.     (queue)->cont=0;\
  42. }
  43.  
  44. #define destroy_queue(param,queue)\
  45. {\
  46.     if (queue) delete_queue(param,(Ptr)queue);\
  47.     OW_DisposePtr(param,(Ptr)queue);\
  48.     queue=NULL;\
  49. }
  50.  
  51. /* function prototypes (llist.c)*/
  52. void add_queue(dataPtr param,HeadQueue *phq, void *item);
  53. void delete_queue(dataPtr param,HeadQueue *phq);
  54. obj    *find_queue(HeadQueue *phq,char *tag);
  55.  
  56.  
  57. /* function prototypes (counter.c)*/
  58. void WriteListToFile(HeadQueue *list);
  59. void my_add_queue(dataPtr param,char *s,long l);
  60.  
  61. #endif